<?php
require_once $_SERVER['DOCUMENT_ROOT']."/PontoRegistrado/Repositorio/IRepositorioUsuario.php";
require_once $_SERVER['DOCUMENT_ROOT']."/PontoRegistrado/Repositorio/Conexao.php";
require_once $_SERVER['DOCUMENT_ROOT']."/PontoRegistrado/ClassesBasicas/Usuario.php";


class RepositorioUsuario implements IRepositorioUsuario {
    private $conexao = null;


    function __construct() {
        $this->conexao = new Conexao();
    }


    public function login ($usuario){
        $this->conexao->abrirConexao();
        
        $query = "select EMAIL,SENHA,SITUACAO,NOME_COMPLETO,CPF,RG,MATRICULA,QTD_HORA 
        		    from tb_usuario
        		      where EMAIL= '".$usuario->getEmail()."' and SENHA = '".$usuario->getSenha()."'";
        
        $r = $this->conexao->executarQuery($query);

      if(mysql_num_rows($r) != 0) {
             return  '1';
        }else {            
            return '0';
        }
        $this->conexao->fecharConexao();       
    }

   /* public function localizarUsuario($codigo, $nome, $login) {
        $this->conexao->abrirConexao();
        $usuario = null;

        $query = "select Usuario.CodUsuario, Usuario.nome, Usuario.dataNascimento, Usuario.email, Usuario.login, Usuario.senha,
                 Privilegio.nome as Privilegio, Usuario.cpf, Usuario.cnpj, Usuario.razaoSocial,
                 Usuario.ativo, Usuario.foto from usuario inner join privilegio on usuario.privilegio = privilegio.codPrivilegio where
                 Usuario.CodUsuario ='".$codigo."' or Usuario.login='".$login."' or Usuario.nome='".$nome."'";

        $r = $this->conexao->executarQuery($query);

        if(mysql_num_rows($r) == 0) {
            $usuario = null;
        }else {
            $u = mysql_fetch_array($r);
            $usuario = new Usuario();

            $usuario->setCodUsuario($u['CodUsuario']);
            $usuario->setNome($u["nome"]);
            $usuario->setDataNascimento($u["dataNascimento"]);
            $usuario->setEmail($u["email"]);
            $usuario->setLogin($u["login"]);
            $usuario->setSenha($u["senha"]);
            $usuario->setPrivilegio($u["Privilegio"]);
            $usuario->setCpf($u["cpf"]);
            $usuario->setCnpj($u["cnpj"]);
            $usuario->setRazaoSocial($u["razaoSocial"]);
            $usuario->setAtivo($u["ativo"]);
            $usuario->setFoto($u["foto"]);
        }
        $this->conexao->fecharConexao();
        
        return $usuario;
    }


    public function atualizarUsuario($usuario) {
        $retorno = false;

        $this->conexao->abrirConexao();

        //construindo a query que retornara o codigo do privilegio do usuario.
        $query = "Select Privilegio.codPrivilegio from Privilegio
                Where Privilegio.Nome = '".$usuario->getPrivilegio()."'";


        //executando a query
        $r = $this->conexao->executarQuery($query);

        //verificando se houve algum retorno e recuperando o codigo do privilegio.
        if(mysql_num_rows($r) != 0) {
            $row = mysql_fetch_array($r);
            $codPrivilegio = $row['codPrivilegio'];

            //construindo a query que ira inserir um novo registro de usuario no banco de dados.
            $updateWebMaster = "Update Usuario set email = '".$usuario->getEmail().
                "', nome = '".$usuario->getNome()."', dataNascimento = '".$usuario->getDataNascimento(). "', senha = '".$usuario->getSenha().
                "', login = '".$usuario->getLogin()."', privilegio = ".$codPrivilegio.
                ", cpf = '".$usuario->getCpf()."', cnpj = '".$usuario->getCnpj().
                "', razaoSocial = '".$usuario->getRazaoSocial()."', ativo = '".$usuario->getAtivo().
                "', foto = '". $usuario->getFoto() . "' where codUsuario = ". $usuario->getCodUsuario() .";";

            //executando a query e verificando se o registro foi atualizado com sucesso.
            if($this->conexao->executarQuery($updateWebMaster)) {//retorna true caso o usuario seja atualiado com sucesso no banco.
                $retorno = true;
            }
        }

        $this->conexao->fecharConexao();

        return $retorno;
        
    }



    public function excluirUsuario($codUsuario) {
        $usuario = new Usuario();
        $usuario = $this->localizarUsuario($codUsuario, $nome, $login);        
        $foto = $usuario->getFoto();        
        $unlink = unlink($foto);

        $this->conexao->abrirConexao();

        $query = "delete from usuario where codUsuario = ". $codUsuario . ";";

        if($this->conexao->executarQuery($query)) {
            return true;
        }else {
            return false;
        }

        $this->conexao->fecharConexao();
    }


    public function verificarEmail($email) {
        $resultado = true;

        $this->conexao->abrirConexao();

        $query = "select * from usuario where email='$email';";

        $e = $this->conexao->executarQuery($query);

        if(mysql_num_rows($e) != 0) {
            $resultado = false;
        }
        
        $this->conexao->fecharConexao();

        return $resultado;

    }
    public function verificarRazao($razao){
        $resultado = true;
        $this->conexao->abrirConexao();
        $query = "select * from usuario where razaoSocial='$razao';";
        $e = $this->conexao->executarQuery($query);
        if(mysql_num_rows($e) != 0) {
            $resultado = false;
        }

        $this->conexao->fecharConexao();

        return $resultado;
    }
    

    public function verificarLogin($login) {
        $resultado = true;

        $this->conexao->abrirConexao();

        $query = "select * from usuario where login='$login';";

        $e = $this->conexao->executarQuery($query);

        if(mysql_num_rows($e) != 0) {
            $resultado = false;
        }

        $this->conexao->fecharConexao();

        return $resultado;
    }


    public function verificarCpf($cpf){
        $resultado = true;
        $this->conexao->abrirConexao();

        $query = "select * from usuario where cpf='$cpf';";

        $e = $this->conexao->executarQuery($query);

        if(mysql_num_rows($e) != 0) {
            $resultado = false;
        }
        
        $this->conexao->fecharConexao();

        return $resultado;
    }
    


    public function verificarCnpj($cnpj){
        $resultado = true;
        $this->conexao->abrirConexao();

        $query = "select * from usuario where cnpj='$cnpj';";

        $e = $this->conexao->executarQuery($query);

        if(mysql_num_rows($e) != 0) {
            $resultado = false;
        }

        $this->conexao->fecharConexao();

        return $resultado;
    }    


    public function meusPosts($login){

        $this->conexao->abrirConexao();

        $posts = array();
        $query = "select forum.titulo as 'forum', assunto.nome as 'assunto',
            topico.titulo as 'topico', post.data as 'dataPost' from usuario
            inner join post on usuario.codUsuario = post.usuario inner join
            topico on post.topico = topico.codTopico inner join assunto on
            topico.assunto = assunto.codAssunto inner join forum on assunto.codForum =
            forum.codForum where usuario.login = '".$login."'";




        $result = mysql_query($query);


        while ($row = mysql_fetch_array($result)){
            $f = $row['forum'];
            $a = $row['assunto'];
            $t = $row['topico'];
            $dp = $row['dataPost'];

            $tempVector = array('forum'=>$f,'assunto'=>$a,'topico'=>$t,'dataPost'=>$dp);

            array_push($posts, $tempVector);
        }

          $this->conexao->fecharConexao();

          
        return $posts;
    }

    
    public function meusTopicos($login){

    $this->conexao->abrirConexao();

    $topicos = array();
//    $query = "SELECT forum.titulo AS 'forum', assunto.nome AS 'assunto', topico.titulo AS 'topico',
//                    topico.data AS 'dataTopico', count(post.codPost) as 'qtdRespostas'
//                FROM usuario
//                INNER JOIN post ON usuario.codUsuario = post.usuario
//                INNER JOIN topico ON post.topico = topico.codTopico
//                INNER JOIN assunto ON topico.assunto = assunto.codAssunto
//                INNER JOIN forum ON assunto.codForum = forum.codForum
//                WHERE topico.usuario =
//                ( SELECT usuario.codUsuario from usuario where usuario.login ='".$login."')";      

        $queryTopico = "SELECT topico.titulo as 'topico', topico.data as 'dataTopico'
                    FROM topico
                    WHERE topico.usuario = (SELECT usuario.codUsuario
                                                FROM usuario
                                                WHERE usuario.login = '".$login."')";
        $resultTopico = mysql_query($queryTopico);
        while ($rowTopico = mysql_fetch_array($resultTopico)){
            $queryAssunto = "SELECT assunto.nome as 'assunto'
                            FROM topico
                            INNER JOIN assunto ON topico.assunto = assunto.codAssunto
                            WHERE topico.titulo='".$rowTopico['topico']."'";
            $resultAssunto = mysql_query($queryAssunto);
            $rowAssunto = mysql_fetch_array($resultAssunto);

            $queryForum = "SELECT forum.titulo as 'forum'
                            FROM assunto
                            INNER JOIN forum ON assunto.codForum = forum.codForum
                            WHERE assunto.nome = '".$rowAssunto['assunto']."'";
            $resultForum = mysql_query($queryForum);
            $rowForum = mysql_fetch_array($resultForum);

            $queryRespostas = "SELECT count(post.codPost) as 'qtdRespostas'
                                FROM topico
                                INNER JOIN post ON post.topico = topico.codTopico
                                WHERE post.topico = (SELECT topico.codTopico
                                                        FROM topico
                                                        WHERE topico.titulo = '".$rowTopico['topico']."')";
            $resultResposta = mysql_query($queryRespostas);
            $rowResposta = mysql_fetch_array($resultResposta);
//            var_dump($queryForum);
//            die();
            $f = $rowForum['forum'];
            $a = $rowAssunto['assunto'];
            $t = $rowTopico['topico'];
            $dt = $rowTopico['dataTopico'];
            $qtd = $rowResposta['qtdRespostas'];

            $tempVector = array('forum'=>$f,'assunto'=>$a,'topico'=>$t,'dataTopico'=>$dt,'qtdRespostas'=>$qtd);

            array_push($topicos, $tempVector);
        }

          $this->conexao->fecharConexao();


        return $topicos;

    }*/

}
?>